The present invention has utility in the diagnosis of hardware and/or software faults in data processing systems. The need for fast, accurate, and cost-effective fault-isolation is becoming increasingly critical in the manufacturing, testing, and servicing of complex data processing systems. As circuit boards become larger and more complex, having more components and higher part densities, more sophisticated fault-isolation techniques are required.
A known fault-isolation method involves using test vectors. Various combinations of inputs are applied to a circuit board under test, and the corresponding outputs are examined and compared with the desired outputs. However, known methods of using test vectors are usually not capable of isolating faults to a particular functional area, not to mention a particular component or portion thereof.
Moreover, in known test systems, the user often is limited to the use of "canned" test procedures, so it would be desirable to empower the user with the ability to build and store his or her own customized set of test routines.
The concept of scan path debugging is known in the data processing arts. Scan path debugging provides a comprehensive test and observation tool for complex computer boards or systems. Scan path debugging may be facilitated using off-the-shelf scannable parts, or custom-programmable devices may be manufactured incorporating scan path logic. By incorporating scan path logic into a design, internal data (normally invisible to the user) may be controlled and observed.
Therefore, there is a significant need in the area of computer systems testing and maintenance for a technique which will permit fast, accurate, detailed, flexible, and cost-effective isolation of faults in hardware and software components.
In addition, in the fast-growing area of supercomputers there is a significant need for a method of fault-isolation which permits examination and review of individual stages or threads within a long pipeline of data. For example, in a massively-parallel computer system a pipeline may contain many tokens (e.g. 8), each representing a different computational thread, which are being simultaneously executed. In such a system many more threads (e.g. 32,000) may be active but not executing. It would be very difficult to isolate faults in such a system using known debugging technology, because until now it has not been possible to "deskew" the pipeline, i.e. to examine the data "trail" of a selected individual token as it moves through the pipeline.
Thus there is also a significant need in the area of computer systems testing and maintenance for a technique which allows data to be readily observed as it propagates through successive stages of a pipeline.